home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
MPW_C
/
ARC_SGML
/
SGMLH
/
SYNXTRN.H
< prev
next >
Wrap
Text File
|
1991-08-15
|
8KB
|
160 lines
/******************************************************************************/
/* Added PCBEAL for LINK and data attribute specification list endings. */
/******************************************************************************/
/* SYNXTRN.H: External declarations for concrete syntax constants.
*/
/******************************************************************************/
/* Short References
*/
#define SRCT 32 /* Number of short reference delimiters. */
#define SRMAXLEN 3 /* Maximum length of a SHORTREF delimiter. */
#define SRNPRT 8 /* Number of non-printable SHORTREF delimiters. */
/******************************************************************************/
struct srdel {
struct map dtb[SRCT+2]; /* LEXCNM: Short reference delimiters. */
UNCH *pdtb[SRNPRT+1]; /* LEXCNM: Printable form of unprintable SRs. */
int fce; /* LEXCNM: Index of first FCE in srdeltab. */
int hyp2; /* LEXCNM: Index of "two hyphens" in srdeltab. */
int data; /* LEXCNM: Index of first SR with data char. */
int hyp; /* LEXCNM: Index of hyphen in srdeltab. */
int prtmin; /* LEXCNM: Index of 1st printable SR. */
int spc; /* LEXCNM: Index of space in srdeltab. */
};
struct delim {
UNCH genre; /* LEXCON: Generated RE; cannot be markup. */
UNCH lit; /* LEXMARK: Char used as LIT delimiter.*/
UNCH lita; /* LEXMARK: Char used as LITA delimiter.*/
UNCH mdc; /* LEXLMS: Char used as MDC delimiter.*/
UNCH msc; /* LEXCON: Char used as MSC delimiter. */
UNCH net; /* LEXCON: Char used as NET when enabled.*/
UNCH pero; /* LEXMARK: Char used as PERO delimiter. */
UNCH pic; /* LEXCON: Char used as PIC delimiter.*/
UNCH tago; /* LEXCON: Char used as TAGO when enabled.*/
};
struct lexcode {
UNCH fce; /* LEXCNM: FRE character as entity reference. */
UNCH fre; /* LEXCON: Free character not an entity ref. */
UNCH litc; /* LEXLMS: Literal close delimiter enabled. */
UNCH lmnsc; /* LEXLMS: Non-SGML character prefix. */
UNCH msc; /* LEXLMS: Marked section close delim enabled. */
UNCH net; /* LEXCON: Null end-tag delimiter enabled. */
UNCH nonet; /* LEXCON: NET disabled; still used as ETI. */
UNCH spcr; /* LEXCNM: Space in use as SHORTREF delimiter. */
UNCH tago; /* LEXCON: Tag open delimiter enabled. */
UNCH cde; /* LEXLMS: CDATA/SDATA delimiters. */
};
struct lexical {
struct markup m; /* Markup strings for text processor. */
struct srdel s; /* Short reference delimiters. */
struct delim d; /* General delimiter characters. */
struct lexcode l; /* Lexical table code assignments. */
};
extern struct lexical lex; /* Delimiter set constants. */
/******************************************************************************/
extern UNCH lexcnm[]; /* Lexical table: mixed content. */
extern UNCH lexcon[]; /* Lexical table for content (except mixed). */
extern UNCH lexgrp[]; /* Lexical table for groups. */
extern UNCH lexlms[]; /* Lexical table: literals and marked sections. */
extern UNCH lexmark[]; /* Lexical table for markup. */
extern UNCH lextran[]; /* Case translation table for SGML names. */
extern UNCH lextoke[]; /* Lexical table for tokenization. */
/******************************************************************************/
extern struct parse pcbconc; /* PCB: character data. */
extern struct parse pcbcone; /* PCB: element content (no data allowed). */
extern struct parse pcbconm; /* PCB: mixed content (data allowed). */
extern struct parse pcbconr; /* PCB: replaceable character data. */
extern struct parse pcbetag; /* PCB: end-tags. */
extern struct parse pcbgrcm; /* PCB: content model group. */
extern struct parse pcbgrcs; /* PCB: content model suffix. */
extern struct parse pcbgrnm; /* PCB: name group. */
extern struct parse pcbgrnt; /* PCB: name token group. */
extern struct parse pcblitc; /* PCB: literal with CDATA. */
extern struct parse pcblitp; /* PCB: literal with CDATA, parm & char refs. */
extern struct parse pcblitr; /* PCB: attribute value with general refs. */
extern struct parse pcblitv; /* PCB: literal with CDATA, function char trans.*/
extern struct parse pcbmd; /* PCB: markup declaration. */
extern struct parse pcbmdc; /* PCB: comment declaration. */
extern struct parse pcbmdi; /* PCB: markup declaration (ignored). */
extern struct parse pcbmds; /* PCB: markup declaration subset. */
extern struct parse pcbmsc; /* PCB: marked section in CDATA mode. */
extern struct parse pcbmsi; /* PCB: marked section in IGNORE mode. */
extern struct parse pcbmsrc; /* PCB: marked section in RCDATA mode. */
extern struct parse pcbpro; /* PCB: prolog. */
extern struct parse pcbref; /* PCB: reference. */
extern struct parse pcbstag; /* PCB: start-tag. */
extern struct parse pcbval; /* PCB: attribute value. */
extern struct parse pcbeal; /* PCB: end of attribute list. */
/******************************************************************************/
extern int pcbcnda; /* PCBCONM: data in buffer. */
extern int pcbcnet; /* PCBCONM: markup found or data buffer flushed.*/
extern int pcbmdtk; /* PCBMD: token expected. */
extern int pcbstan; /* PCBSTAG: attribute name expected. */
/******************************************************************************/
struct keywords {
UNCH any [NAMELEN+1];
UNCH attlist [NAMELEN+1];
UNCH capacity [NAMELEN+1];
UNCH cdata [NAMELEN+1];
UNCH charset [NAMELEN+1];
UNCH conref [NAMELEN+1];
UNCH current [NAMELEN+1];
UNCH kdefault [NAMELEN+1];
UNCH doctype [NAMELEN+1];
UNCH document [NAMELEN+1];
UNCH dtd [NAMELEN+1];
UNCH element [NAMELEN+1];
UNCH elements [NAMELEN+1];
UNCH empty [NAMELEN+1];
UNCH endtag [NAMELEN+1];
UNCH entities [NAMELEN+1];
UNCH entitee [NAMELEN+1];
UNCH fixed [NAMELEN+1];
UNCH idiot [NAMELEN+1];
UNCH idref [NAMELEN+1];
UNCH idrefs [NAMELEN+1];
UNCH ignore [NAMELEN+1];
UNCH implied [NAMELEN+1];
UNCH include [NAMELEN+1];
UNCH link [NAMELEN+1];
UNCH linktype [NAMELEN+1];
UNCH lpd [NAMELEN+1];
UNCH md [NAMELEN+1];
UNCH ms [NAMELEN+1];
UNCH name [NAMELEN+1];
UNCH names [NAMELEN+1];
UNCH ndata [NAMELEN+1];
UNCH nmtoken [NAMELEN+1];
UNCH nmtokens [NAMELEN+1];
UNCH nonsgml [NAMELEN+1];
UNCH notation [NAMELEN+1];
UNCH number [NAMELEN+1];
UNCH numbers [NAMELEN+1];
UNCH nutoken [NAMELEN+1];
UNCH nutokens [NAMELEN+1];
UNCH pcdata [NAMELEN+1];
UNCH pi [NAMELEN+1];
UNCH public [NAMELEN+1];
UNCH rcdata [NAMELEN+1];
UNCH re [NAMELEN+1];
UNCH required [NAMELEN+1];
UNCH rs [NAMELEN+1];
UNCH sdata [NAMELEN+1];
UNCH sgml [NAMELEN+1];
UNCH shortref [NAMELEN+1];
UNCH space [NAMELEN+1];
UNCH starttag [NAMELEN+1];
UNCH subdoc [NAMELEN+1];
UNCH syntax [NAMELEN+1];
UNCH system [NAMELEN+1];
UNCH tab [NAMELEN+1];
UNCH temp [NAMELEN+1];
UNCH text [NAMELEN+1];
UNCH uselink [NAMELEN+1];
UNCH usemap [NAMELEN+1];
};
struct sintax {
struct keywords k;
};
extern struct sintax syn; /* Reserved names, concrete syntax constants. */
/******************************************************************************/